using System;
using System.Threading;

namespace CleanCodeExample
{
	public class FpsUeberwacher
	{
		Int32 NaechsterAufruf {get;set;}
		FpsMoeglichkeiten Fps {get;set;}
		
		public FpsUeberwacher (FpsMoeglichkeiten fps)
		{
			this.Fps = Fps;
		}
		
		public void WarteFuerSync()
		{
			if (Fps != FpsMoeglichkeiten.KeineLimitierung)
			{
				Int32 aktuelleZeit = System.Environment.TickCount;
				if (NaechsterAufruf > aktuelleZeit)
				{
					Thread.Sleep(NaechsterAufruf - aktuelleZeit);
				}
				NaechsterAufruf = aktuelleZeit + (Int32) Fps;
			}	
		}
	}
}

